1. Field of the Invention
This invention relates to computer cache technology and more particularly relates to computer storage data caching.
2. Description of the Related Art
It has long been recognized that computer programs exhibit both temporal and spatial locality of reference. This statistical fact underpins computer cache technology, in which recently and proximally accessed information from a larger, higher latency medium is cached in a smaller, lower latency medium. The effective latency of the combined media becomes the cache hit rate times the lower latency plus the cache miss rate times the higher latency. The concept has been extended to multiple levels of caching within the memory hierarchy, including storage (e.g. disk), main memory, global cache, local cache, and registers.
Storage data caching generally refers to the caching of data from the storage subsystem in a memory-based cache. The memory-based cache may be implemented within the storage subsystem or it may reside in the main memory of the computer(s) served by the storage subsystem, or both.
As noted above, the performance of a cache is largely a function of the miss rate (the hit rate is simply one minus the miss rate). However, the cache miss rate is rarely constant. It tends to spike to a high level when a new working set is introduced, such as by a context switch, and then gradually declines to a steady-state level. If the media involved have relatively low latency (e.g. main memory), such variations are not typically noticeable by a user. However, a spike in the miss rate for storage data caching, with the high latency involved in the mechanical rotation of the disk, can indeed cause a very noticeable delay, impacting the productivity of the user(s).
The delay is particularly problematic at initial boot-up, when a great deal of data is being accessed for the first time and the cache miss rate is thus very high. The problem becomes even more impactful when an entire data processing system is brought on-line with many computers sharing a single storage subsystem, such as a SAN (Storage Area Network).